int GenLine (y0,x0,y1,x1, Line)
int    y0,x0,y1,x1;
LinTyp * Line;
{
   static int  Step [2] = {-1,1};
   int  XDiff, YDiff, XStep, YStep, Sum, i;
   
   XStep = Step [x0<x1];  XDiff = abs (x0-x1);
   YStep = Step [y0<y1];  YDiff = abs (y0-y1);

   GetMem (Line);
   Line[0].r = y0;
   Line[0].c = x0;
   i=1;

   if (XDiff > YDiff) {
      Sum = XDiff >> 1;
      while (x0 != x1) {
         x0 += XStep;
         Sum -= YDiff;
         if  (Sum < 0) {
            y0 += YStep;
            Sum += XDiff;
         }
         GetMem (Line);
         Line[0].r = y0;
         Line[0].c = x0;
         i++;
      }
   }else{
      Sum = YDiff >> 1;
      while (y0 != y1) {
         y0 += YStep;
         Sum -= XDiff;
         if (Sum < 0) {
            x0 += XStep;
            Sum += YDiff;
         }
         GetMem (Line);
         Line[0].r = y0;
         Line[0].c = x0;
         i++;
   }  }
   return (i++);
}
